package cn.itcast.io.b.bytestream;

import java.io.*;
import java.nio.channels.FileChannel;

public class CopyFile {

    public static void main(String[] args) throws IOException {
        // 需求1：复制文件
        copyFileToDestination();
    }

    private static void copyFileToDestination() throws IOException {
        
        /**
         * 思路：
         * 1. 给定一个源文件
         * 2. 给定一个目标文件
         * 3. 读取源文件的内容
         * 4. 把读取到的内容写入目标文件
         */
        File file1 = new File("C:\\Users\\hz21076971\\Desktop\\Desktop\\picture\\DCIM(4).jpg");
        File file2 = new File("C:\\Users\\hz21076971\\Desktop\\Desktop\\picture\\壁纸\\头像.jpg");

        FileInputStream fis = new FileInputStream(file1);
        FileOutputStream fos = new FileOutputStream(file2);
        
        //byte[] buffer = new byte[fis.available()]; // available方法不建议使用，因为如果文件过大，可能造成缓冲器溢出。
        byte[] buffer = new byte[1024];
        int length = 0;
        while ((length = fis.read(buffer)) != -1){
            fos.write(buffer,0,length);
        }
        fos.close();
        fis.close();
    }
}
